﻿using System;
using Persistencia;
using SearchServer.AppManager;

namespace SearchServer.UI.Utilidades
{
    public class Utilidades
    {
        /// <summary>
        /// Carga los links a los que puede acceder el usuario que ingreso al sistema.
        /// </summary>
        internal static String CargarLinksVentana(Usuario user)
        {
            String resultado = "";
            bool busquedaSilverlight = false;
            bool busquedaWeb = false;
            bool mantenimientoBusqueda = false;
            bool mantenimientoFSE = false;
            bool mantenimientoUsuarios = false;
            bool mantenimientoVideosInstitucionales = false;
            bool reportes = false;
            bool seleccionIndexado = false;

            if (user.Rol != null)
            {
                foreach (Rol rol in user.Rol)
                {
                    if (rol.Funcionalidad != null)
                    {
                        
                        foreach (Funcionalidad funcionalidad in rol.Funcionalidad)
                        {
                            if (funcionalidad.Texto_Descripcion == FuncionalidadesTipos.BusquedaSilverlight && !busquedaSilverlight)
                            {
                                resultado += "<li><a href=\"JavaScript:newPopup('../SearchClientTestPage.aspx');\">Busqueda Gerencia</a></li>";
                                busquedaSilverlight = true;
                            }
                            if (funcionalidad.Texto_Descripcion == FuncionalidadesTipos.BusquedaWeb && !busquedaWeb)
                            {
                                resultado += "<li><a href='Busqueda.aspx'>Busqueda</a></li>";
                                busquedaWeb = true;
                            }
                            if (funcionalidad.Texto_Descripcion == FuncionalidadesTipos.MantenimientoBusqueda && !mantenimientoBusqueda)
                            {
                                resultado += "<li><a href='MantenimientoBusquedas.aspx'>Busquedas</a></li>";
                                mantenimientoBusqueda = true;
                            }
                            if (funcionalidad.Texto_Descripcion == FuncionalidadesTipos.MantenimientoFSE && !mantenimientoFSE)
                            {
                                resultado += "<li><a href='MantenimientoFSE.aspx'>FileSystemElements</a></li>";
                                mantenimientoFSE = true;
                            }
                            if (funcionalidad.Texto_Descripcion == FuncionalidadesTipos.MantenimientoUsuarios && !mantenimientoUsuarios)
                            {
                                resultado += "<li><a href='MantenimientoUsuarios.aspx'>Usuarios</a></li>";
                                mantenimientoUsuarios = true;
                            }
                            if (funcionalidad.Texto_Descripcion == FuncionalidadesTipos.MantenimientoVideosInstitucionales && !mantenimientoVideosInstitucionales)
                            {
                                resultado += "<li><a href='MantenimientoVideosInstitucionales.aspx'>Videos Inst.</a></li>";
                                mantenimientoVideosInstitucionales = true;
                            }
                            if (funcionalidad.Texto_Descripcion == FuncionalidadesTipos.Reportes && !reportes)
                            {
                                resultado += "<li><a href='Reportes.aspx'>Reportes</a></li>";
                                reportes = true;
                            }
                            if (funcionalidad.Texto_Descripcion == FuncionalidadesTipos.SeleccionIndexado && !seleccionIndexado)
                            {
                                resultado += "<li><a href='SeleccionIndexado.aspx'>Indexado</a></li>";
                                seleccionIndexado = true;
                            }
                        }
                    }
                }
            }
            resultado += "<li><img id='btnLogout' src='Imagenes/logout.png' onclick='Logout()' style='cursor: pointer; background-color:transparent;' title='Logout' alt='Logout'/></li>";
            return resultado;
        }

        internal static DateTime GetFechaCreacion()
        {
            TimeMgr.TimeMgr mgr = new TimeMgr.TimeMgr();
            return mgr.ObtenerFecha();
        }

        internal static bool ValidarUsuarioSesion(Usuario user)
        {
            UserManager usrInstance = UserManager.GetInstancia();
            return usrInstance.ValidarUsuarioSesion(user);
        }

    }
}